home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
signal.arc
/
SIGNAL.H
< prev
next >
Wrap
Text File
|
1985-07-26
|
2KB
|
45 lines
struct intinfo {
short Di; /* Di prior to interrupt */
short Si; /* Si prior to interrupt */
short Dx; /* Dx prior to interrupt */
short Cx; /* Cx prior to interrupt */
short Bx; /* Bx prior to interrupt */
short Ax; /* Ax prior to interrupt */
short Sp; /* Sp prior to interrupt (see note) */
short Ss; /* Ss prior to interrupt */
/* The following defines the interrupt boot code and should */
/* not be modified */
char LCALL[5]; /* Call to XCINTCOM */
char IRET; /* Iret instruction */
short FUNCIP; /* IP of function */
short FUNCCS; /* CS of function */
short FUNCDS; /* DS of function */
short FUNCSS; /* SS of function */
};
/*
Note: By using the data obtained from intinfo.Ss and intinfo.Sp
you can obtain access to the following information:
*/
struct intinfo2 {
short Bx; /* Bx prior to interrupt */
short Ds; /* Ds prior to interrupt */
short Es; /* Es prior to interrupt */
short Bp; /* Bp prior to interrupt */
short Reserv1; /* Ip to IRET in the IBC */
short Reserv2; /* Cs to IRET in the IBC */
short Ip; /* Ip prior to interrupt <--+ Hardware */
short Cs; /* Cs prior to interrupt += generated */
short Flags; /* Flags prior to interrupt <--+ during int */
/* Anything following here belongs to the task that was interrupted */
};
/* Both of the following assume that the pointer is a character pointer */
#define SIZE_OF_IBC 14 /* Size of interrupt boot field */
/* This is added to the size of the */
/* Stack and contains the code to */
/* call XCINTCOM. */
#define OFFSET_TO_REGS 16 /* Amount to subtract from end of */
/* allocated stack to get to callers */
/* regs */
char *signal();